Memory devices can be used to maintain and store data in electronic devices. In particular, flash memory is a type of electronic memory media that can be rewritten, and can retain content without consumption of power. Flash memory has become popular, at least in part, because it combines the advantages of the high density and low cost of electrically programmable read only memory (EPROM) with the electrical erasability of electrically erasable programmable read only memory (EEPROM). Flash memory is used in many portable electronic products, such as cell phones, portable computers, voice recorders, thumbnail drives and the like, as well as in many larger electronic systems, such as cars, planes, industrial control systems, etc. The fact that flash memory can be rewritten as well as its retention of data without a power source, small size, and light weight have all combined to make flash memory devices useful and popular means for transporting and maintaining data.
As flash memory devices have continued to evolve, the density of data stored in such devices has increased. With the increasing density of data stored in flash devices, read errors can be an issue due in part to the close proximity of read threshold levels. Further, as erase cycles increase, read errors may occur more frequently. It is desirable to maintain the accuracy and reliability of flash devices. An error correction code (ECC) can be implemented to facilitate maintaining the accuracy and reliability of memory devices, such as flash memory. However, in determining the type of error correction to implement as well as how to implement such error correction, it is desirable to consider certain factors, such as channel behavior, ECC implementation complexity (e.g., gate count, power consumption, etc.), ECC correction capability, and latency of decoding, with regard to respective ECCs, for example.